﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tradex.Market {

    /// <summary>
    /// This enumeration defines a filter for the market acivity that is processsed in a subscription.
    /// </summary>
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1028")]
    [Flags]
    public enum ActivityFilters : byte {

        /// <summary>
        ///  No data, everything is filtered out.
        /// </summary>
        None = 0x00,

        /// <summary>
        /// Deliver trade executions.
        /// </summary>
        Trades = 0x01,

        /// <summary>
        /// Deliver trade volume. This is a separate update after every
        /// trade that contains the aggregated volume of the session.
        /// </summary>
        TradeVolume = 0x02,

        /// <summary>
        /// Delivers all bid/ask information available.
        /// </summary>
        Quotes = 0x04,

        /// <summary>
        /// Delivers the best bid and ask available.
        /// </summary>
        BestQuotes = 0x08,

        /// <summary>
        /// Deliver the mode messages indicating market mode changes.
        /// </summary>
        Mode = 0x10,

        /// <summary>
        /// Enables the delivers of settlement data.
        /// </summary>
        Settlements = 0x20,

        /// <summary>
        /// These are indicator prices - preliminary published prices that indicate where at the time the possible official
        /// open or close price will be.
        /// </summary>
        Indicators = 0x40,

        /// <summary>
        /// Extreme market updates contain the session high and low price and are sent whenever this changes.
        /// </summary>
        Extremes = 0x80,

        /// <summary>
        /// Delivers all information.
        /// </summary>
        All = 0xff

    }
}
